fail-fast: false
matrix:
include:
- - QT_VERSION: '5.12.12'
- XCODE_VERSION: '11.7'
- RELEASE: false
- QT_VERSION: '5.15.2'
XCODE_VERSION: '12.4'
+ GENERATOR: qmake
RELEASE: false
- QT_VERSION: '6.2.4'
XCODE_VERSION: '12.5.1'
+ GENERATOR: qmake
RELEASE: true
+ - QT_VERSION: '6.2.4'
+ XCODE_VERSION: '12.5.1'
+ GENERATOR: 'Ninja'
+ RELEASE: false
steps:
- name: Checkout repository
run: |
./tools/travis_install_osx ${{ matrix.QT_VERSION }} aqt
+ - name: Brew install
+ if: matrix.GENERATOR == 'Ninja'
+ run: |
+ brew update
+ brew install ninja
+
- name: Script
run: |
source ${HOME}/Cache/qt-${{ matrix.QT_VERSION }}.env
sudo xcode-select --switch /Applications/Xcode_${{ matrix.XCODE_VERSION }}.app
- ./tools/travis_script_osx
+ if [ "${{ matrix.GENERATOR }}" == qmake ]; then
+ ./tools/travis_script_osx
+ else
+ ./tools/ci_script_osx.sh . ${{ matrix.QT_VERSION }} ${{ matrix.GENERATOR }}
+ fi
- name: Deploy
# This only handles continous releases now, for other events artifacts may be saved in
name: basic Build
runs-on: ubuntu-latest
container:
- image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_focal
+ image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_jammy
env:
LC_ALL: 'C.UTF-8'
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: build_and_test
run: |
+ # when using containers manually whitelist the checkout directory to allow git commands to work
+ git config --global --add safe.directory "${GITHUB_WORKSPACE}"
./tools/build_and_test.sh
cmake:
name: cmake Build
runs-on: ubuntu-latest
container:
- image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_focal
+ image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_jammy
env:
LC_ALL: 'C.UTF-8'
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: build_and_test
run: |
+ # when using containers manually whitelist the checkout directory to allow git commands to work
+ git config --global --add safe.directory "${GITHUB_WORKSPACE}"
./tools/build_and_test_cmake.sh
qtio_gcc:
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: build_and_test
run: |
+ # when using containers manually whitelist the checkout directory to allow git commands to work
+ git config --global --add safe.directory "${GITHUB_WORKSPACE}"
. /opt/qtio.env
./tools/build_and_test.sh
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: build_and_test
run: |
+ # when using containers manually whitelist the checkout directory to allow git commands to work
+ git config --global --add safe.directory "${GITHUB_WORKSPACE}"
. /opt/qtio.env
./tools/build_and_test.sh
name: advanced Build
runs-on: ubuntu-latest
container:
- image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_focal
+ image: gpsbabel-docker.jfrog.io/tsteven4/gpsbabel_build_environment_jammy
env:
LC_ALL: 'C.UTF-8'
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: build_extra_tests
run: |
+ # when using containers manually whitelist the checkout directory to allow git commands to work
+ git config --global --add safe.directory "${GITHUB_WORKSPACE}"
./tools/build_extra_tests.sh
coverage:
sudo apt-get install gcovr lcov libusb-1.0-0-dev qt5-default
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: script
env:
METHOD: 'aqt'
FLOW: 'msbuild'
RELEASE: false
- - QT_VERSION: '5.12.12'
- ARCH: 'amd64'
- HOST_ARCH: 'x86'
- COMPILER: 'msvc2017_64'
- METHOD: 'aqt'
- FLOW: 'cmake'
- RELEASE: false
- QT_VERSION: '5.12.12'
ARCH: 'amd64'
HOST_ARCH: 'x86'
METHOD: 'aqt'
RELEASE: true
FLOW: 'nmake'
+ - QT_VERSION: '6.2.4'
+ ARCH: 'amd64'
+ HOST_ARCH: 'amd64'
+ COMPILER: 'msvc2019_64'
+ METHOD: 'aqt'
+ RELEASE: false
+ GENERATOR: 'Ninja'
steps:
- name: Checkout repository
CI_BUILD_DIR: ${{ github.workspace }}
shell: bash
run: |
- ./tools/ci_install_windows.sh ${{ matrix.QT_VERSION }} ${{ matrix.COMPILER }} ${{ matrix.METHOD }}
+ ./tools/ci_install_windows.sh "${{ matrix.QT_VERSION }}" "${{ matrix.COMPILER }}" "${{ matrix.METHOD }}"
- name: Build
shell: powershell
run: |
- .\tools\ci_setup_windows.ps1 -qtdir "$Home\Cache\Qt\${{ matrix.QT_VERSION }}\${{ matrix.COMPILER }}" -arch ${{ matrix.ARCH }} -host_arch ${{ matrix.HOST_ARCH }} -vcversion "${{ matrix.VCVERSION }}"
- .\tools\make_windows_release.ps1 -iscc "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" -buildinstaller true -flow ${{ matrix.FLOW }} -arch ${{ matrix.ARCH }}
+ .\tools\ci_setup_windows.ps1 -qtdir "$Home\Cache\Qt\${{ matrix.QT_VERSION }}\${{ matrix.COMPILER }}" -arch "${{ matrix.ARCH }}" -host_arch "${{ matrix.HOST_ARCH }}" -vcversion "${{ matrix.VCVERSION }}"
+ if ( "${{ matrix.generator }}" ) {
+ .\tools\ci_script_windows.ps1 -generator "${{ matrix.GENERATOR }}" -arch "${{ matrix.ARCH }}"
+ } else {
+ .\tools\make_windows_release.ps1 -iscc "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" -buildinstaller true -flow "${{ matrix.FLOW }}" -arch "${{ matrix.ARCH }}"
+ }
- name: Rename
shell: bash
run: |
VERSION_ID=$(date -u +%Y%m%dT%H%MZ --date=$(git show -s --format=%aI HEAD))-$(git rev-parse --short=7 HEAD)
- mv gui/release/GPSBabel-*-Setup.exe gui/release/GPSBabel-${VERSION_ID}-Setup.exe
- mv gui/release/GPSBabel-*-Manifest.txt gui/release/GPSBabel-${VERSION_ID}-Manifest.txt
+ mv bld/gui/GPSBabel-*-Setup.exe bld/gui/GPSBabel-${VERSION_ID}-Setup.exe
+ mv bld/gui/GPSBabel-*-Manifest.txt bld/gui/GPSBabel-${VERSION_ID}-Manifest.txt
- name: Test
shell: bash
run: |
- PATH="${HOME}/Cache/Qt/${{ matrix.QT_VERSION }}/${{ matrix.COMPILER }}/bin:${PATH}"
- PNAME=./release/GPSBabel.exe GBTEMP=./gbtemp ./testo 2>&1
- PNAME=./release/GPSBabel.exe GBTEMP=./gbtemp ./test_encoding_utf8 2>&1
+ # PATH="${HOME}/Cache/Qt/${{ matrix.QT_VERSION }}/${{ matrix.COMPILER }}/bin:${PATH}"
+ PNAME=./bld/gui/package/gpsbabel.exe GBTEMP=./gbtemp ./testo 2>&1
+ PNAME=./bld/gui/package/gpsbabel.exe GBTEMP=./gbtemp ./test_encoding_utf8 2>&1
- name: Deploy
# This only handles continous releases now, for other events artifacts may be saved in
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_NAME: Continuous-${{ runner.os }}
run: |
- ./tools/uploadtool/upload_github.sh gui/release/GPSBabel-*-Setup.exe
+ ./tools/uploadtool/upload_github.sh bld/gui/GPSBabel-*-Setup.exe
- name: 'Upload Artifacts'
uses: actions/upload-artifact@v2
with:
name: Windows_Installer ${{ join(matrix.*) }}
path: |
- ./gui/release/GPSBabel-*-Setup.exe
- ./gui/release/GPSBabel-*-Manifest.txt
+ ./bld/gui/GPSBabel-*-Setup.exe
+ ./bld/gui/GPSBabel-*-Manifest.txt
retention-days: 7
--- /dev/null
+name: "windows ondemand"
+
+on:
+ schedule:
+ - cron: '27 4 * * 2'
+ workflow_dispatch: ~
+
+jobs:
+
+ windows:
+ name: windows ondemand Build
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - QT_VERSION: '5.12.12'
+ ARCH: 'amd64'
+ HOST_ARCH: 'amd64'
+ COMPILER: 'msvc2017_64'
+ METHOD: 'aqt'
+ GENERATOR: 'Visual Studio 16 2019'
+ os: windows-2019
+ - QT_VERSION: '5.12.12'
+ ARCH: 'amd64'
+ HOST_ARCH: 'amd64'
+ COMPILER: 'msvc2017_64'
+ TOOLSET: 'v141,version=14.16.27023'
+ METHOD: 'aqt'
+ GENERATOR: 'Visual Studio 16 2019'
+ os: windows-2019
+ - QT_VERSION: '5.12.12'
+ ARCH: 'x86'
+ HOST_ARCH: 'amd64'
+ COMPILER: 'msvc2017'
+ METHOD: 'aqt'
+ GENERATOR: 'Visual Studio 16 2019'
+ os: windows-2019
+ - QT_VERSION: '6.2.4'
+ ARCH: 'amd64'
+ HOST_ARCH: 'amd64'
+ COMPILER: 'msvc2019_64'
+ METHOD: 'aqt'
+ GENERATOR: 'Visual Studio 16 2019'
+ os: windows-2019
+ - QT_VERSION: '6.2.4'
+ ARCH: 'amd64'
+ HOST_ARCH: 'amd64'
+ COMPILER: 'msvc2019_64'
+ METHOD: 'aqt'
+ GENERATOR: 'Visual Studio 17 2022'
+ os: windows-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - name: Cache Qt
+ uses: actions/cache@v2
+ id: cache
+ with:
+ path: ~/Cache
+ key: ${{ runner.os }}-${{ matrix.QT_VERSION }}-${{ matrix.COMPILER }}-${{ secrets.CACHE_VERSION }}
+
+ - name: Install Qt setup(aqt)
+ if: steps.cache.outputs.cache-hit != 'true'
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.9'
+
+ - name: Install Qt
+ if: steps.cache.outputs.cache-hit != 'true'
+ env:
+ CI_BUILD_DIR: ${{ github.workspace }}
+ shell: bash
+ run: |
+ ./tools/ci_install_windows.sh "${{ matrix.QT_VERSION }}" "${{ matrix.COMPILER }}" "${{ matrix.METHOD }}"
+
+ - name: Build
+ shell: powershell
+ run: |
+ .\tools\ci_setup_windows.ps1 -qtdir "$Home\Cache\Qt\${{ matrix.QT_VERSION }}\${{ matrix.COMPILER }}" -arch "${{ matrix.ARCH }}" -host_arch "${{ matrix.HOST_ARCH }}" -vcversion "${{ matrix.VCVERSION }}"
+ if ( "${{ matrix.generator }}" ) {
+ .\tools\ci_script_windows.ps1 -generator "${{ matrix.GENERATOR }}" -arch "${{ matrix.ARCH }}" -toolset "${{ matrix.TOOLSET }}"
+ } else {
+ .\tools\make_windows_release.ps1 -iscc "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" -buildinstaller true -flow "${{ matrix.FLOW }}" -arch "${{ matrix.ARCH }}"
+ }
+
+ - name: Rename
+ shell: bash
+ run: |
+ VERSION_ID=$(date -u +%Y%m%dT%H%MZ --date=$(git show -s --format=%aI HEAD))-$(git rev-parse --short=7 HEAD)
+ mv bld/gui/GPSBabel-*-Setup.exe bld/gui/GPSBabel-${VERSION_ID}-Setup.exe
+ mv bld/gui/GPSBabel-*-Manifest.txt bld/gui/GPSBabel-${VERSION_ID}-Manifest.txt
+
+ - name: Test
+ shell: bash
+ run: |
+ # PATH="${HOME}/Cache/Qt/${{ matrix.QT_VERSION }}/${{ matrix.COMPILER }}/bin:${PATH}"
+ PNAME=./bld/gui/package/gpsbabel.exe GBTEMP=./gbtemp ./testo 2>&1
+ PNAME=./bld/gui/package/gpsbabel.exe GBTEMP=./gbtemp ./test_encoding_utf8 2>&1
+
+ - name: 'Upload Artifacts'
+ uses: actions/upload-artifact@v2
+ with:
+ name: Windows_Installer ${{ join(matrix.*) }}
+ path: |
+ ./bld/gui/GPSBabel-*-Setup.exe
+ ./bld/gui/GPSBabel-*-Manifest.txt
+ retention-days: 7
message(FATAL_ERROR "Please use CMakeLists.txt in the project root directory to generate a build system.")
endif()
+add_subdirectory(coretool)
+
configure_file(${CMAKE_SOURCE_DIR}/gbversion.h.in gbversion.h @ONLY NEWLINE_STYLE LF)
configure_file(setup.iss.in setup.iss @ONLY NEWLINE_STYLE CRLF)
get_target_property(IncDirs ${TARGET} INCLUDE_DIRECTORIES)
message(STATUS "Include Directores are: \"${IncDirs}\"")
-add_custom_target(package_app COMMAND ./package_app DEPENDS ${TARGET})
+# FIXME: remove reliance an app.pro in package_app script.
+# FIXME: translations updated and released in source directory (and under version control).
+list(APPEND TRANSLATIONS gpsbabelfe_de.ts)
+list(APPEND TRANSLATIONS gpsbabelfe_es.ts)
+list(APPEND TRANSLATIONS gpsbabelfe_fr.ts)
+list(APPEND TRANSLATIONS gpsbabelfe_hu.ts)
+list(APPEND TRANSLATIONS gpsbabelfe_it.ts)
+list(APPEND TRANSLATIONS gpsbabelfe_ru.ts)
+
+if(APPLE)
+ get_target_property(_qmake_executable Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
+ add_custom_target(package_app
+ COMMAND QMAKE=${_qmake_executable} ${CMAKE_CURRENT_SOURCE_DIR}/package_app $<TARGET_BUNDLE_DIR:${TARGET}> $<TARGET_FILE:gpsbabel> ${CMAKE_CURRENT_SOURCE_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_BUNDLE_DIR:${TARGET}>/../GPSBabelFE.dmg ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${TARGET} gpsbabel coretool_lrelease
+ VERBATIM
+ USES_TERMINAL)
+elseif(UNIX)
+ get_target_property(_qmake_executable Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
+ add_custom_target(package_app
+ COMMAND QMAKE=${_qmake_executable} ${CMAKE_CURRENT_SOURCE_DIR}/package_app $<TARGET_FILE_DIR:${TARGET}> $<TARGET_FILE:gpsbabel> ${CMAKE_CURRENT_SOURCE_DIR}
+ DEPENDS ${TARGET} gpsbabel coretool_lrelease
+ VERBATIM
+ USES_TERMINAL)
+elseif(WIN32)
+ find_package(Qt${QT_VERSION_MAJOR} QUIET COMPONENTS LinguistTools)
+ if (NOT Qt${QT_VERSION_MAJOR}LinguistTools_FOUND)
+ message(WARNING "Qt${QT_VERSION_MAJOR}LinguistTools not found, ${TARGET} translations cannot be updated or released, and application cannot be packaged.")
+ endif()
+
+ find_program(INNO_COMPILER NAMES iscc ISCC
+ PATHS "C:/Program Files (x86)/Inno Setup 6" "C:/Program Files/Inno Setup 6")
+ if (INNO_COMPILER STREQUAL "INNO_COMPILER-NOTFOUND")
+ message(WARNING "Inno compiler iscc not found, application cannot be packaged.")
+ endif()
+
+ # in 5.12.12 cmake doesn't know about windeployqt, look in directory that has qmake.
+ get_target_property(_qmake_executable Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
+ get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
+ find_program(WINDEPLOYQT NAMES windeployqt PATHS "${_qt_bin_dir}" NO_DEFAULT_PATH)
+ if (WINDEPLOYQT STREQUAL "WINDEPLOYQT-NOTFOUND")
+ message(WARNING "windeployqt not found, application cannot be packaged.")
+ endif()
+
+ if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND)
+ add_custom_target(${TARGET}_lupdate
+ COMMAND Qt${QT_VERSION_MAJOR}::lupdate ${SOURCES} ${FORMS} -ts ${TRANSLATIONS}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ VERBATIM
+ USES_TERMINAL)
+ add_custom_target(${TARGET}_lrelease
+ COMMAND Qt${QT_VERSION_MAJOR}::lrelease ${TRANSLATIONS}
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DEPENDS ${TARGET}_lupdate
+ VERBATIM
+ USES_TERMINAL)
+ if((NOT WINDEPLOYQT STREQUAL "WINDEPLOYQT-NOTFOUND") AND (NOT INNO_COMPILER STREQUAL "INNO_COMPILER-NOTFOUND"))
+ file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" _win_binary_path)
+ file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" _win_source_path)
+ add_custom_target(package_app
+ # deploy to a clean directory as different build systems create differently named debris in release.
+ COMMAND ${CMAKE_COMMAND} -E remove_directory package
+ COMMAND ${CMAKE_COMMAND} -E make_directory package
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${TARGET}> package
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:gpsbabel> package
+ # use --plugindir option to locate the plugins.
+ COMMAND ${WINDEPLOYQT} --verbose 1 --plugindir package\\plugins package\\GPSBabelFE.exe package\\GPSBabel.exe
+ # set location to location of generated setup.iss file.
+ COMMAND ${INNO_COMPILER} /Doutput_dir=${_win_binary_path} /Dsource_dir=${_win_source_path} setup.iss
+ DEPENDS ${TARGET} gpsbabel ${TARGET}_lrelease coretool_lrelease
+ VERBATIM
+ USES_TERMINAL)
+ endif()
+ endif()
+endif()
unix:MOC_DIR = objects
unix:OBJECTS_DIR = objects
unix:RCC_DIR = objects
+unix:!mac:DESTDIR = GPSBabelFE
mac:DESTDIR = .
UI_DIR = tmp
--- /dev/null
+if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
+ message(FATAL_ERROR "Please use CMakeLists.txt in the project root directory to generate a build system.")
+endif()
+
+set(TARGET coretool)
+
+add_executable(${TARGET} EXCLUDE_FROM_ALL)
+
+find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
+find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Widgets REQUIRED)
+list(APPEND QT_LIBRARIES Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Widgets)
+
+list(APPEND SOURCES ../formatload.cc)
+list(APPEND SOURCES coretool.cc)
+
+list(APPEND HEADERS ../format.h)
+list(APPEND HEADERS ../formatload.h)
+
+target_compile_definitions(${TARGET} PRIVATE GENERATE_CORE_STRINGS)
+target_include_directories(${TARGET} PRIVATE ..)
+target_sources(${TARGET} PRIVATE ${SOURCES} ${HEADERS})
+target_link_libraries(${TARGET} ${QT_LIBRARIES})
+
+# FIXME: core_strings.h generated in source directory (and under version control).
+# FIXME: translations updated and released in source directory (and under version control).
+
+get_target_property(_qmake_executable Qt${QT_VERSION_MAJOR}::qmake IMPORTED_LOCATION)
+get_filename_component(_qt_bin_dir "${_qmake_executable}" DIRECTORY)
+add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/core_strings.h
+ COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:gpsbabel> ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND ${CMAKE_COMMAND} -DQTBINDIR=${_qt_bin_dir} -DCURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/coretool.cmake
+ DEPENDS ${TARGET} gpsbabel
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ VERBATIM
+ USES_TERMINAL)
+
+list(APPEND TRANSLATIONS gpsbabel_de.ts)
+list(APPEND TRANSLATIONS gpsbabel_es.ts)
+list(APPEND TRANSLATIONS gpsbabel_fr.ts)
+list(APPEND TRANSLATIONS gpsbabel_hu.ts)
+list(APPEND TRANSLATIONS gpsbabel_it.ts)
+list(APPEND TRANSLATIONS gpsbabel_ru.ts)
+
+find_package(Qt${QT_VERSION_MAJOR} QUIET COMPONENTS LinguistTools)
+if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND)
+ # The line numbers are almost meaningless the way we generate corestrings.h, and we force everything to the same context.
+ # With line numbers and the similartext heuristic enabled translations can be copied from an old message to a new message,
+ # and marked as unfinished. The threshold for similar is low.
+ # These will be used by the application, even though they really need to be checked.
+ # Disable the similartext heuristic to avoid these mistranslations.
+ add_custom_target(coretool_lupdate
+ COMMAND Qt${QT_VERSION_MAJOR}::lupdate -disable-heuristic similartext core_strings.h -ts ${TRANSLATIONS}
+ DEPENDS core_strings.h
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ VERBATIM
+ USES_TERMINAL)
+
+ add_custom_target(coretool_lrelease
+ COMMAND Qt${QT_VERSION_MAJOR}::lrelease ${TRANSLATIONS}
+ DEPENDS coretool_lupdate
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ VERBATIM
+ USES_TERMINAL)
+else()
+ message(WARNING "Qt${QT_VERSION_MAJOR}LinguistTools not found, coretool translations cannot be updated or released.")
+endif()
--- /dev/null
+foreach(var QTBINDIR CURRENT_BINARY_DIR)
+ if(NOT DEFINED ${var})
+ message(FATAL_ERROR "${var} must be passed on the command line")
+ endif()
+endforeach()
+
+if(WIN32)
+ # windows needs the Qt Binary directory in the path to find the DLLs.
+ file(TO_NATIVE_PATH "${QTBINDIR}" _qt_win_path)
+ set(ENV{PATH} "${_qt_win_path};$ENV{PATH}")
+endif()
+execute_process(
+ COMMAND ${CURRENT_BINARY_DIR}/coretool core_strings.h)
LCONVERT="$(${QMAKE} -query QT_INSTALL_BINS)/lconvert"
MACDEPLOYQT="$(${QMAKE} -query QT_INSTALL_BINS)/macdeployqt"
+GPSBABEL=${2:-../gpsbabel}
+SOURCEDIR=${3:-.}
+
case "$(uname -s)" in
Linux*) machine=Linux;;
Darwin*) machine=Mac;;
esac
# update our translations and compile them.
-"${LUPDATE}" app.pro
-"${LRELEASE}" app.pro
+"${LUPDATE}" "${SOURCEDIR}/app.pro"
+"${LRELEASE}" "${SOURCEDIR}/app.pro"
if [ "${machine}" = "Linux" ]; then
# need absolute paths for convert_qt_translations()
- APPDIR="$(pwd)/GPSBabelFE"
+ APPDIR="$( cd "${1:-GPSBabelFE}" && pwd )"
LANGDIR="${APPDIR}/translations"
else
- APPBUNDLE=GPSBabelFE.app
# need absolute paths for convert_qt_translations()
- APPDIR="$(pwd)/${APPBUNDLE}"
+ APPDIR="$( cd "${1:-GPSBabelFE.app}" && pwd )"
LANGDIR="${APPDIR}/Contents/MacOS/translations"
+ APPBUNDLE=$(basename "$APPDIR")
fi
rm -fr "${LANGDIR}"
mkdir -p "${LANGDIR}"
# copy our compiled translations.
-cp gpsbabelfe_??.qm "${LANGDIR}"
-cp coretool/gpsbabel_??.qm "${LANGDIR}"
+cp "${SOURCEDIR}"/gpsbabelfe_??.qm "${LANGDIR}"
+cp "${SOURCEDIR}"/coretool/gpsbabel_??.qm "${LANGDIR}"
# bundle Qt .qm files, deploy them with our .qm files,
# and, for macos, make & deploy locversion.plist files.
(convert_qt_translations)
if [ "${machine}" = "Linux" ]; then
- cp objects/gpsbabelfe "${APPDIR}"
- cp ../gpsbabel "${APPDIR}"
- cp gmapbase.html "${APPDIR}"
- cp COPYING.txt "${APPDIR}"
+ cp "${GPSBABEL}" "${APPDIR}"
+ cp "${SOURCEDIR}/gmapbase.html" "${APPDIR}"
+ cp "${SOURCEDIR}/COPYING.txt" "${APPDIR}"
else # Mac
- cp ../gpsbabel "${APPDIR}/Contents/MacOS/gpsbabel"
- cp gmapbase.html "${APPDIR}/Contents/MacOS"
- cp COPYING.txt "${APPDIR}/Contents/MacOS"
+ cp "${GPSBABEL}" "${APPDIR}/Contents/MacOS/gpsbabel"
+ cp "${SOURCEDIR}/gmapbase.html" "${APPDIR}/Contents/MacOS"
+ cp "${SOURCEDIR}/COPYING.txt" "${APPDIR}/Contents/MacOS"
+ pushd "${APPDIR}/.."
rm -f GPSBabelFE.dmg
# macdeploytqt likes relative paths or else the dmg mount points get funky.
"${MACDEPLOYQT}" "${APPBUNDLE}" -executable="${APPBUNDLE}/Contents/MacOS/gpsbabel" -dmg -verbose=2
+ popd
fi
; Uses the Inno setup compiler.\r
; windeployqt should be run to prepare the necessary Qt files before\r
; running Inno Setup.\r
-#ifndef package_dir\r
- #define package_dir "..\build-app-Desktop-Release\package"\r
+#ifndef output_dir\r
+ #define output_dir "."\r
#endif\r
#ifndef source_dir\r
#define source_dir "."\r
ArchitecturesInstallIn64BitMode=x64\r
DefaultDirName={pf}\GPSBabel\r
DefaultGroupName=GPSBabel\r
-OutputDir=release\r
+OutputDir="{#output_dir}"\r
OutputBaseFilename=GPSBabel-@GB.VERSION@@GB.PACKAGE_RELEASE@-Setup\r
OutputManifestFile=GPSBabel-@GB.VERSION@@GB.PACKAGE_RELEASE@-Manifest.txt\r
SetupIconFile=images\babel2.ico\r
Source: gmapbase.html; DestDir: "{app}"; Flags: ignoreversion\r
Source: qt.conf; DestDir: "{app}"; Flags: ignoreversion\r
\r
-Source: "{#package_dir}\*"; Excludes: "vc_redist.*.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs\r
-Source: "{#package_dir}\vc_redist.x86.exe"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
-Source: "{#package_dir}\vc_redist.x64.exe"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
-Source: "{#package_dir}\gpsbabel.exe"; DestDir: "{app}"; Flags: ignoreversion\r
+Source: "{#output_dir}\package\*"; Excludes: "vc_redist.*.exe"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs\r
+Source: "{#output_dir}\package\vc_redist.x86.exe"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
+Source: "{#output_dir}\package\vc_redist.x64.exe"; DestDir: "{app}"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
+Source: "{#output_dir}\package\gpsbabel.exe"; DestDir: "{app}"; Flags: ignoreversion\r
; Source: release\help\*; DestDir: "{app}\help"; Flags: ignoreversion recursesubdirs createallsubdirs\r
\r
; Translation strings extracted from source code. Include it in the dist\r
; Uses the Inno setup compiler.\r
; windeployqt should be run to prepare the necessary Qt files before\r
; running Inno Setup.\r
-#ifndef package_dir\r
- #define package_dir \"..\\build-app-Desktop-Release\\package\"\r
+#ifndef output_dir\r
+ #define output_dir \".\"\r
#endif\r
#ifndef source_dir\r
- #define source_dir "."\r
+ #define source_dir \".\"\r
#endif\r
\r
[Setup]\r
ArchitecturesInstallIn64BitMode=x64\r
DefaultDirName={pf}\\GPSBabel\r
DefaultGroupName=GPSBabel\r
-OutputDir=release\r
+OutputDir=\"{#output_dir}\"\r
OutputBaseFilename=GPSBabel-$${GB.VERSION}$${GB.PACKAGE_RELEASE}-Setup\r
OutputManifestFile=GPSBabel-$${GB.VERSION}$${GB.PACKAGE_RELEASE}-Manifest.txt\r
SetupIconFile=images\\babel2.ico\r
Source: gmapbase.html; DestDir: \"{app}\"; Flags: ignoreversion\r
Source: qt.conf; DestDir: \"{app}\"; Flags: ignoreversion\r
\r
-Source: \"{#package_dir}\\*\"; Excludes: \"vc_redist.*.exe\"; DestDir: \"{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs\r
-Source: \"{#package_dir}\\vc_redist.x86.exe\"; DestDir: \"{app}\"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
-Source: \"{#package_dir}\\vc_redist.x64.exe\"; DestDir: \"{app}\"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
-Source: \"{#package_dir}\\gpsbabel.exe\"; DestDir: \"{app}\"; Flags: ignoreversion\r
+Source: \"{#output_dir}\\package\\*\"; Excludes: \"vc_redist.*.exe\"; DestDir: \"{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs\r
+Source: \"{#output_dir}\\package\\vc_redist.x86.exe\"; DestDir: \"{app}\"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
+Source: \"{#output_dir}\\package\\vc_redist.x64.exe\"; DestDir: \"{app}\"; Flags: ignoreversion skipifsourcedoesntexist deleteafterinstall\r
+Source: \"{#output_dir}\\package\\gpsbabel.exe\"; DestDir: \"{app}\"; Flags: ignoreversion\r
; Source: release\\help\\*; DestDir: \"{app}\\help\"; Flags: ignoreversion recursesubdirs createallsubdirs\r
\r
; Translation strings extracted from source code. Include it in the dist\r
--- /dev/null
+# this file is used to build the image gpsbabel_build_environment used by travis.
+
+FROM ubuntu:jammy
+
+LABEL maintainer="https://github.com/tsteven4"
+
+WORKDIR /app
+
+# update environment.
+ARG DEBIAN_FRONTEND=noninteractive
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ apt-utils \
+ && apt-get upgrade -y \
+ && rm -rf /var/lib/apt/lists/*
+
+# install packages needed for gpsbabel build
+# split into multiple commands to limit layer size
+
+# basic build and test tools
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ g++ \
+ make \
+ autoconf \
+ git \
+ valgrind \
+ expat \
+ libxml2-utils \
+ bear \
+ cmake \
+ ninja-build \
+ clazy \
+ && rm -rf /var/lib/apt/lists/*
+
+# alternative compiler
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ clang \
+ && rm -rf /var/lib/apt/lists/*
+
+# pkgs needed to build document
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ fop \
+ xsltproc \
+ docbook-xml \
+ docbook-xsl \
+ && rm -rf /var/lib/apt/lists/*
+
+# pkgs with libraries needed by gpsbabel
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ libusb-1.0-0-dev \
+ pkg-config \
+ libudev-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+# pkgs with qt used by gpsbabel
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ qtbase5-dev \
+ qttools5-dev-tools \
+ qttranslations5-l10n \
+ qtwebengine5-dev \
+ libqt5serialport5-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+# pkgs needed to generate coverage report:
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ gcovr \
+ && rm -rf /var/lib/apt/lists/*
+
+# install environment for locale test
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ locales \
+ && rm -rf /var/lib/apt/lists/* \
+ && sed -i 's/^# *\(en_US ISO-8859-1\)/\1/' /etc/locale.gen \
+ && locale-gen \
+ && locale -a
--- /dev/null
+#!/bin/bash -ex
+#
+# this script is run on ci for the script stage of mac builds
+#
+
+function version_ge() { test "$(printf "%s\n%s" $1 $2 | sort -rV | head -n 1)" == "$1"; }
+
+if [ $# -lt 2 ]; then
+ echo "Usage: $0 source_directory qt_version [Generator]"
+ exit 1
+fi
+SOURCE_DIR=$1
+QTVER=$2
+if [ $# -ge 3 ]; then
+ if [ -n "$3" ]; then
+ GENERATOR[0]=-G
+ GENERATOR[1]=$3
+ fi
+fi
+if version_ge "${QTVER}" 6.0.0; then
+ DEPLOY_TARGET="10.14"
+ ARCHS="x86_64;arm64"
+elif version_ge "${QTVER}" 5.14.0; then
+ DEPLOY_TARGET="10.13"
+ ARCHS="x86_64"
+else
+ DEPLOY_TARGET="10.12"
+ ARCHS="x86_64"
+fi
+
+# we assume we are on macOS, so date is not gnu date.
+VERSIONID=${VERSIONID:-$(date -ju -f %Y-%m-%dT%H:%M:%S%z $(git show -s --format="%aI" HEAD | sed 's/:\(..\)$/\1/') +%Y%m%dT%H%MZ)-$(git rev-parse --short=7 HEAD)}
+
+# debug tokens
+"$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)"/ci_tokens
+
+case "${GENERATOR[1]}" in
+Xcode | "Ninja Multi-Config")
+ cmake "${SOURCE_DIR}" -DCMAKE_OSX_ARCHITECTURES=${ARCHS} -DCMAKE_OSX_DEPLOYMENT_TARGET=${DEPLOY_TARGET} "${GENERATOR[@]}"
+ cmake --build . --config Release
+ ctest -C Release
+ cmake --build . --config Release --target package_app
+ ;;
+*)
+ cmake "${SOURCE_DIR}" -DCMAKE_OSX_ARCHITECTURES=${ARCHS} -DCMAKE_OSX_DEPLOYMENT_TARGET=${DEPLOY_TARGET} -DCMAKE_BUILD_TYPE=Release "${GENERATOR[@]}"
+ cmake --build .
+ ctest
+ cmake --build . --target package_app
+ ;;
+esac
+
+# what is in there?
+hdiutil attach -noverify gui/GPSBabelFE.dmg
+find /Volumes/GPSBabelFE -ls
+hdiutil detach /Volumes/GPSBabelFE
+
+mv gui/GPSBabelFE.dmg "gui/GPSBabel-${VERSIONID}.dmg"
--- /dev/null
+# Script to build and create windows installer.\r
+#\r
+# Run this from a Qt Desktop command window that has the Qt and mingw compiler paths set up,\r
+# such as the one Qt Creator will put on the start menu, or\r
+# from a power shell prompt after settings up the paths with tools\ci_setup_windows.ps1.\r
+# For example\r
+# powershell.exe -ExecutionPolicy Unrestricted -File tools\make_windows_release.ps1\r
+#\r
+# The defaults should be compatible with github action builds.\r
+Param(\r
+ $build_dir_name = "bld",\r
+ $generator = "Ninja",\r
+ $toolset = "",\r
+ [ValidateSet("x86", "amd64", "amd64_x86", "x86_amd64")] $arch = "amd64"\r
+)\r
+# the arch parameter values correspond to:\r
+# vcvarsall arch parameter x86 => host x86, target x86.\r
+# vcvarsall arch paramter amd64 => host amd64, target amd64.\r
+# vcvarsall arch parameter amd64_x86 => host amd64, target x86\r
+# vcvarsall arch parameter x86_amd64 => host x86, target amd64\r
+# vsdevcmd arch parameter x86 => target x86.\r
+# vsdevcmd arch parameter amd64 => target amd64.\r
+\r
+$ErrorActionPreference = "Stop"\r
+# verify we are in the top of the gpsbabel clone\r
+Get-Item tools/ci_script_windows.ps1 -ErrorAction Stop | Out-Null\r
+$src_dir = $Pwd\r
+$build_dir = Join-Path $src_dir $build_dir_name\r
+$CMAKE_PREFIX_PATH = Split-Path $((Get-Command qmake) | Split-Path) -Parent\r
+# translate target architecture to Platform property value.\r
+switch ($arch) {\r
+ "x86" { $platform = "Win32" }\r
+ "amd64" { $platform = "x64" }\r
+ "amd64_x86" { $platform = "Win32" }\r
+ "x86_amd64" { $platform = "x64" }\r
+}\r
+# make sure we are staring with a clean build directory\r
+Remove-Item $build_dir -Recurse -ErrorAction Ignore\r
+New-Item $build_dir -type directory -Force | Out-Null\r
+Set-Location $build_dir\r
+$hashargs = "-G", $generator\r
+if ( $toolset ) {\r
+ $hashargs += "-T", $toolset\r
+}\r
+if ( $generator -like "Visual Studio*") {\r
+ $hashargs += "-A", $platform\r
+} else {\r
+ $hashargs += "-DCMAKE_BUILD_TYPE:STRING=Release"\r
+}\r
+$hashargs += "-DCMAKE_PREFIX_PATH:PATH=$CMAKE_PREFIX_PATH"\r
+Write-Output cmake $hashargs $src_dir\r
+cmake $hashargs $src_dir\r
+if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
+switch -wildcard ($generator) {\r
+ "Visual Studio*" { cmake --build $build_dir --config Release }\r
+ default { cmake --build $build_dir }\r
+}\r
+if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
+switch -wildcard ($generator) {\r
+ "Visual Studio*" { cmake --build $build_dir --config Release --target package_app }\r
+ default { cmake --build $build_dir --target package_app}\r
+}\r
+if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
Param(\r
$windeployqt = "windeployqt.exe",\r
$iscc = "C:\Program Files (x86)\Inno Setup 5\ISCC.exe",\r
- $gpsbabel_build_dir_name = "build-GPSBabel-Desktop-Release",\r
- $gui_build_dir_name = "build-app-Desktop-Release",\r
- [ValidateSet("mingw", "msbuild", "nmake", "cmake")] $flow = "nmake",\r
+ $gpsbabel_build_dir_name = "bld",\r
+ [ValidateSet("mingw", "msbuild", "nmake")] $flow = "nmake",\r
$buildinstaller = "false",\r
[ValidateSet("x86", "amd64", "amd64_x86", "x86_amd64")] $arch = "amd64"\r
)\r
# verify we are in the top of the gpsbabel clone\r
Get-Item tools/make_windows_release.ps1 -ErrorAction Stop | Out-Null\r
$gpsbabel_src_dir = "$Pwd"\r
-$gpsbabel_build_dir = "$($gpsbabel_src_dir)\..\$($gpsbabel_build_dir_name)"\r
-if ( "$flow" -eq "cmake" ) {\r
- $gui_build_dir = "$($gpsbabel_build_dir)"\r
-} else {\r
- $gui_build_dir = "$($gpsbabel_src_dir)\$($gui_build_dir_name)"\r
-}\r
+$gpsbabel_build_dir = "$($gpsbabel_src_dir)\$($gpsbabel_build_dir_name)"\r
+$gui_build_dir = "$($gpsbabel_build_dir)\gui"\r
if ( "$flow" -eq "msbuild" ) {\r
# translate target architecture to Platform property value.\r
switch ($arch) {\r
"x86_amd64" { $platform = "x64" }\r
}\r
}\r
-if ( "$flow" -eq "cmake" ) {\r
- $CMAKE_PREFIX_PATH = "$(Join-Path "$((Get-Command qmake) | Split-Path)" '..' -Resolve)"\r
-}\r
# mimic creator shadow build to match Inno setup file\r
# make sure we are staring with a clean build directory\r
Remove-Item "$($gpsbabel_build_dir)" -Recurse -ErrorAction Ignore\r
#WARNING: Could not parse Compiler option '-std:c++14'; added to AdditionalOptions.\r
"msbuild" { $ErrorActionPreference = "Continue"; qmake -tp vc "$($gpsbabel_src_dir)\GPSBabel.pro"; $ErrorActionPreference = "Stop" }\r
"nmake" { qmake "$($gpsbabel_src_dir)\GPSBabel.pro" -spec "win32-msvc" }\r
- "cmake" { cmake -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_PREFIX_PATH:PATH="$($CMAKE_PREFIX_PATH)" -DCMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH="$($gpsbabel_build_dir)\release" "$($gpsbabel_src_dir)" }\r
}\r
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
switch ($flow) {\r
"mingw" { ming32-make }\r
"msbuild" { msbuild GPSBabel.vcxproj -property:Configuration=Release -property:Platform=$platform }\r
"nmake" { nmake /NOLOGO }\r
- "cmake" { cmake --build . }\r
}\r
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
-# copy GPSBabel.exe for use by test_script\r
-Remove-Item "$($gpsbabel_src_dir)\release" -Recurse -ErrorAction Ignore\r
-New-Item "$($gpsbabel_src_dir)\release" -type directory -Force | Out-Null\r
-Copy-Item "$($gpsbabel_build_dir)\release\GPSBabel.exe" "$($gpsbabel_src_dir)\release\GPSBabel.exe"\r
-if ( "$flow" -ne "cmake" ) {\r
- Set-Location "$($gpsbabel_src_dir)"\r
- # make sure we are staring with a clean build directory\r
- Remove-Item "$($gui_build_dir)" -Recurse -ErrorAction Ignore\r
- New-Item "$($gui_build_dir)" -type directory -Force | Out-Null\r
- Set-Location "$($gui_build_dir)"\r
- switch ($flow) {\r
- "mingw" { qmake "$($gpsbabel_src_dir)\gui\app.pro" -spec "win32-g++" }\r
- "msbuild" { qmake -tp vc "$($gpsbabel_src_dir)\gui\app.pro" }\r
- "nmake" { qmake "$($gpsbabel_src_dir)\gui\app.pro" -spec "win32-msvc" }\r
- }\r
- if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
- switch ($flow) {\r
- "mingw" { ming32-make }\r
- "msbuild" { msbuild GPSBabelFE.vcxproj -property:Configuration=Release -property:Platform=$platform }\r
- "nmake" { nmake /NOLOGO }\r
- }\r
- if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
+# make sure we are staring with a clean build directory\r
+Remove-Item "$($gui_build_dir)" -Recurse -ErrorAction Ignore\r
+New-Item "$($gui_build_dir)" -type directory -Force | Out-Null\r
+Set-Location "$($gui_build_dir)"\r
+switch ($flow) {\r
+ "mingw" { qmake "$($gpsbabel_src_dir)\gui\app.pro" -spec "win32-g++" }\r
+ "msbuild" { qmake -tp vc "$($gpsbabel_src_dir)\gui\app.pro" }\r
+ "nmake" { qmake "$($gpsbabel_src_dir)\gui\app.pro" -spec "win32-msvc" }\r
+}\r
+if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
+switch ($flow) {\r
+ "mingw" { ming32-make }\r
+ "msbuild" { msbuild GPSBabelFE.vcxproj -property:Configuration=Release -property:Platform=$platform }\r
+ "nmake" { nmake /NOLOGO }\r
}\r
+if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
Set-Location "$($gui_build_dir)"\r
# work around errors with lupdate, lrelease misprocessing qtHaveModule(webenginewidgets)\r
# and generating a message to stderr WARNING: Project ERROR: Unknown module(s) in QT: webkit webkitwidgets\r
# deploy to a clean directory as different build systems create differently named debris in release.\r
Remove-Item "$($gui_build_dir)\package" -Recurse -ErrorAction Ignore\r
New-Item "$($gui_build_dir)\package" -type directory -Force | Out-Null\r
-Copy-Item "$($gpsbabel_build_dir)\release\GPSBabel.exe" "$($gui_build_dir)\package\GPSBabel.exe"\r
+Copy-Item "$($gpsbabel_build_dir)\release\gpsbabel.exe" "$($gui_build_dir)\package\gpsbabel.exe"\r
Copy-Item "$($gui_build_dir)\release\GPSBabelFE.exe" "$($gui_build_dir)\package\GPSBabelFE.exe"\r
# use --plugindir option to locate the plugins.\r
-& "$($windeployqt)" --verbose 1 --plugindir package\plugins package\GPSBabelFE.exe package\GPSBabel.exe\r
+& "$($windeployqt)" --verbose 1 --plugindir package\plugins package\GPSBabelFE.exe package\gpsbabel.exe\r
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
if ($buildinstaller -eq "true") {\r
# set location to location of generated setup.iss file.\r
- if ( "$flow" -eq "cmake" ) {\r
- Set-Location "$($gpsbabel_build_dir)/gui"\r
- }\r
- & "$($iscc)" /Dpackage_dir="$($gui_build_dir)\package" /Dsource_dir="$($gpsbabel_src_dir)\gui" setup.iss\r
+ & "$($iscc)" /Doutput_dir="$($gui_build_dir)" /Dsource_dir="$($gpsbabel_src_dir)\gui" setup.iss\r
if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }\r
}\r
Set-Location "$($gpsbabel_src_dir)"\r